home *** CD-ROM | disk | FTP | other *** search
/ SPACE 1 / SPACE - Library 1 - Volume 1.iso / program / 355 / source / modre-ex / m2demo.mod < prev    next >
Text File  |  1990-02-02  |  4KB  |  119 lines

  1. MODULE resource;
  2.  
  3. (*
  4.    Produced by ResourceMaker 0.10a
  5.    Copyright (c) 1985, 1986 Modula 2 Software Ltd.
  6.    Copyright (c) 1985, 1986 TDI Software Inc.
  7.  
  8.    Resource file version: 00000H
  9. *)
  10.  
  11.   FROM SYSTEM IMPORT CODE, ADDRESS;
  12.  
  13.   FROM AESResources IMPORT ResourceObjectFix;
  14.  
  15.   CONST
  16.     (* object types that don't have to be relocated *)
  17.     GBOX = 20;
  18.     GPROGDEF = 24;
  19.     GIBOX = 25;
  20.     GBOXCHAR = 27;
  21.  
  22.   CONST
  23.     (* resource file object counts and indicies *)
  24.     nrObjects = 8;  ixObjects = 226;
  25.     nrTrees = 2;  ixTrees = 418;
  26.     nrTedInfos = 2;  ixTedInfos = 170;
  27.  
  28.   (* resource file data inserted into CODE stream *)
  29.  
  30.   (*$S-,$P-,$T-*)
  31.   PROCEDURE RESOURCEDATA0;
  32.   BEGIN
  33.     CODE(00000H,000E2H,000AAH,000AAH,000AAH,000AAH,00024H,000AAH);
  34.     CODE(000AAH,001A2H,00008H,00002H,00002H,00000H,00000H,00000H);
  35.     CODE(00000H,001AAH,05468H,06973H,02069H,07320H,06120H,07361H);
  36.     CODE(06D70H,06C65H,02064H,0656DH,06F20H,06F66H,02064H,06961H);
  37.     CODE(06C6FH,06700H,07265H,06164H,0696EH,06700H,05F5FH,05F5FH);
  38.     CODE(05F5FH,05F5FH,05F5FH,0004EH,0616DH,0653AH,05F5FH,05F5FH);
  39.     CODE(05F5FH,05F5FH,05F5FH,00058H,05858H,05858H,05858H,05858H);
  40.     CODE(05800H,0676FH,0206FH,06E21H,0005FH,05F5FH,05F5FH,05F5FH);
  41.     CODE(05F5FH,05F00H,0596FH,07520H,07479H,07065H,0643AH,05F5FH);
  42.     CODE(05F5FH,05F5FH,05F5FH,05F5FH,00058H,05858H,05858H,05858H);
  43.     CODE(05858H,05800H,0446FH,06E65H,02100H,00000H,0004CH,00000H);
  44.     CODE(00057H,00000H,00067H,00003H,00006H,00000H,01180H,00000H);
  45.     CODE(000FFH,0000BH,00010H,00000H,00079H,00000H,00084H,00000H);
  46.     CODE(00099H,00003H,00006H,00000H,01180H,00000H,000FFH,0000BH);
  47.     CODE(00015H,0FFFFH,00001H,00004H,00014H,00000H,00010H,00002H);
  48.     CODE(01100H,00000H,00000H,00026H,0000BH,00002H,0FFFFH,0FFFFH);
  49.     CODE(0001CH,00000H,00000H,00000H,00024H,00004H,00002H,0001FH);
  50.     CODE(00001H,00003H,0FFFFH,0FFFFH,0001CH,00000H,00000H,00000H);
  51.     CODE(00044H,0000FH,00004H,00009H,00001H,00004H,0FFFFH,0FFFFH);
  52.     CODE(0001DH,00008H,00000H,00000H,000AAH,0000BH,00006H,0000FH);
  53.     CODE(00001H,00000H,0FFFFH,0FFFFH,0001AH,00025H,00000H,00000H);
  54.     CODE(00072H,0000EH,00008H,00008H,00001H,0FFFFH,00001H,00002H);
  55.     CODE(00014H,00000H,00010H,00002H,01100H,00000H,00000H,0001CH);
  56.     CODE(00009H,00002H,0FFFFH,0FFFFH,0001DH,00008H,00000H,00000H);
  57.     CODE(000C6H,00003H,00002H,00014H,00001H,00000H,0FFFFH,0FFFFH);
  58.     CODE(0001AH,00025H,00000H,00000H,000A4H,00008H,00005H,00008H);
  59.     CODE(00001H,00000H,000E2H,00000H,0015AH);
  60.   END RESOURCEDATA0;
  61.  
  62.  
  63. TYPE
  64.   OBJECT = RECORD
  65.              next, head: INTEGER;
  66.              tail, type: INTEGER;
  67.              flags, state: INTEGER;
  68.              spec: ADDRESS;
  69.              x, y: INTEGER;
  70.              width, height: INTEGER;
  71.            END;
  72.   TEDINFO = RECORD
  73.               ptext,
  74.               ptmplt,
  75.               pvalid: ADDRESS;
  76.               font, resvd1: INTEGER;
  77.               just, color: INTEGER;
  78.               resvd2, thickness: INTEGER;
  79.               txtlen, tmplen: INTEGER;
  80.             END;
  81. VAR
  82.   i: CARDINAL; o: INTEGER; x: ADDRESS;
  83.   TreeAddr: POINTER TO ARRAY [0..nrTrees-1] OF ADDRESS;
  84.   TedInfoAddr: POINTER TO ARRAY [0..nrTedInfos-1] OF TEDINFO;
  85.   ObjectAddr: POINTER TO ARRAY [0..nrObjects-1] OF OBJECT;
  86.  
  87. BEGIN
  88.   (* relocate tree indicies *)
  89.   x := ADDRESS(RESOURCEDATA0) + ixTrees;
  90.   TreeAddr := x;
  91.   FOR i := 0 TO nrTrees-1 DO
  92.     TreeAddr^[i] := TreeAddr^[i] + ADDRESS(RESOURCEDATA0); INC(x,4); 
  93.   END;
  94.   (* relocate ted infos *)
  95.   x := ADDRESS(RESOURCEDATA0) + ixTedInfos;
  96.   TedInfoAddr := x;
  97.   FOR i := 0 TO nrTedInfos-1 DO
  98.     WITH TedInfoAddr^[i] DO
  99.       ptext := ptext + ADDRESS(RESOURCEDATA0);
  100.       ptmplt := ptmplt + ADDRESS(RESOURCEDATA0);
  101.       pvalid := pvalid + ADDRESS(RESOURCEDATA0);
  102.     END;
  103.   END;
  104.   (* relocate object specs *)
  105.   x := ADDRESS(RESOURCEDATA0) + ixObjects;
  106.   ObjectAddr := x;
  107.   FOR i := 0 TO nrObjects-1 DO
  108.     WITH ObjectAddr^[i] DO
  109.       IF (type # GBOX)  & (type # GPROGDEF) &
  110.          (type # GIBOX) & (type # GBOXCHAR) THEN
  111.         (* relocate against resource base *)
  112.         spec := spec + ADDRESS(RESOURCEDATA0);
  113.       END;
  114.       (* Fix up the scaling *)
  115.       ResourceObjectFix(ObjectAddr,i) ;  (*0.10a*)
  116.     END;
  117.   END;
  118. END resource.
  119.